Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Інформація про навчальний заклад

ВУЗ:
Національний технічний університет України Київський політехнічний інститут
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2022
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Алгоритмізація та програмування

Частина тексту файла

Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського» Кафедра АПЕПС Алгоритмізація та програмування - 2. Процедурне програмування ЗВІТ до лабораторної роботи № 2 «Динамічне виділення пам’яті для одно- та двовимірних масивів» Варіант № 18 Дата «08» червня 2022                                                                                         ЗАВДАННЯ: 1. Ознайомитись з особливостями роботи з динамічними одно- та двовимірними масивами. 2. Розробити Блок-схему програмного алгоритму. 3. Виконати індивідуальне завдання. 4. Оформити ЗВІТ до лабораторної роботи згідно вимог та методичних рекомендацій. 5. Вихідні дані (завдання) обрати згідно свого варіанта у Додатку B-2. РЕЗУЛЬТАТ РОБОТИ: 1. Роздрукувати отримані результати (вивести на екран). 2. ЗВІТ до комп’ютерного практикуму для перевірки додати в Клас. 3. Програмний код розмістити на сайті Repl.it (посилання виключно через кнопку «+ Invite»). Теоретичні відомості: Використання масиву вказівників на рядки (вказівник на вказівник)  для динамічного виділення пам’яті для двовимірного масиву Динамічне виділення пам’яті під двовимірний масив, що базується на  використанні масиву вказівників на рядки (вказівник на вказівник). Графічна  схема виділення пам’яті під двовимірний масив показана на Рисунку 1.    Рядки (одновимірні масиви)     н  а и в н і к   з д и а я к к р и В [0]  →  [0][0]  [0][1]  …  [0][M-1]   [1]  →  [1][0]  [1][1]  …  [1][M-1]   …  →  …  …  …  …   [N-1]  →  [N-1][0]  [N-1][1]  …  [N-1][M-1]   Рисунок 1 – Схема виділення пам’яті під двовимірний масив  Для виділення пам’яті необхідно виконати наступні кроки:  1. Об’явити масив вказівників (наприклад, int **parray;);  2. Виділити блоки оперативної пам’яті під одномірні масиви, що  представляють собою рядки заданої матриці (наприклад, parray =  (int**)malloc(N * sizeof(int*)););  3. записати адреси рядків в масив вказівників (наприклад, parray[i] =  (int*)malloc(M * sizeof(int));).  Для звільнення пам’яті необхідно виконати такі кроки:  1. Видалити адреси рядків в масиві покажчиків (наприклад, for (i = 0; i < N;  i++) {free(parray[i]);})  2. Видалити масив вказівників (наприклад, free(parray);)  При такому способі динамічного виділення пам’яті компілятору явно  вказується кількість рядків і кількість стовпців в масиві. Перерозподіл динамічно виділеної пам’яті Функція realloc перерозподіляє пам’ять.  Синтаксис: #include <stdlib.h>  #include <alloc.h>  void * realloc(void *block, size_t size);  Опис: realloc намагається стиснути або збільшити попередньо виділений блок  block до нового розміру в size байт. Аргумент block вказує на блок пам’яті,  отриманий при виклику функцій malloc або realloc. Якщо block є нульовим  покажчиком, realloc працює також як і malloc. realloc змінює розмір виділеного  блоку пам’яті і при необхідності копіює його вміст в новий блок.  Варіант індивідуального завдання: / Опис програми: Користувач може задати довжину масиву, який програма заповнює випадковими значеннями, а потім виводить масив, що складається з лише непарних елементів першого масиву. Також користувач може задати довжину і ширину матриці, а також кількість рядків, яких він хоче додати до матриці. Програма спочатку виводить матрицю заданого розміру, а потім ту ж саму матрицю, але з доданими рядками, які теж заповнені випадковими значеннями. Результат програми: / Висновок: Було написано програму, в якій користувач може задати одновимірний масив, для якого виділиться необхідний об’єм пам’яті, після чого буде створений ще один масив, який буде містити лише непарні елементи першого масиву. Також користувач може задати довжину і ширину матриці і кількість рядків, яких він хоче додати до матриці. Програма виділяє пам’ять для матриці та виводить її, після чого створюється нова матриця, для якої теж виділяється пам’ять, в яку переписуються дані з першої, але ще додається задана кількість рядків. У результаті виконання лабораторної робо...
Антиботан аватар за замовчуванням

21.06.2023 01:06

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини